package com.sdry.product.prehangingline.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.sdry.basic.entity.Material;
import com.sdry.basic.entity.ProductionStation;
import com.sdry.product.prehangingline.entity.PreHangingLine;
import com.sdry.product.prehangingline.entity.StationMateriel;
import com.sdry.product.prod.entity.ResultAppList;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * 预挂线
 * @author chenBin
 * @date 2020年3月2日14:40:41
 * @version 1.0
 */
public interface PreHangingLineMapper extends BaseMapper<PreHangingLine> {

    /**
     * 查询信息
     * @param map 条件
     * @return List<StationMateriel>
     */
    List<StationMateriel> queryPreHangingLineDetailPage(Map<String, Object> map);

    /**
     * 查询信息总数
     * @param map 条件
     * @return List<StationMateriel>
     */
    Long queryPreHangingLineDetailTotal(Map<String, Object> map);

    /**
     * 查询工位
     * @param type 类型
     * @return List<ProductionStation>
     */
    List<ProductionStation> queryWorkstation(String type);

    /**
     * 分页查询
     * @param preHangingLine 对象
     * @return List<PreHangingLine>
     */
    List<PreHangingLine> queryPreHangingLinePage(Map<String, Object> preHangingLine);

    /**
     * 总数
     * @param preHangingLine 对象
     * @return List<PreHangingLine>
     */
    Long queryPreHangingLineTotal(Map<String, Object> preHangingLine);

    /**
     * 物料区域查询
     * @return List<ResultAppInfo>
     */
    List<ResultAppList<Material>> queryRegionMateriel();

    /**
     * 根据编号查询容器ID
     * @param psNumber 容器编号
     * @param remark
     * @return Long
     */
    Long queryContainerByNumber(@Param("psNumber") String psNumber, @Param("remark") String remark);

    /**
     * 分拣区物料查询去往预挂线查询
     * @return
     * @param permissionType
     */
    List<Material> queryRegionPreHangingLineMateriel(String permissionType);

    /**
     * 用于预挂线交换工位查询物料
     * @param containerNumber 编号
     * @return List<ResultAppList>
     */
    List<Material> queryPreOneLineMateriel(String[] containerNumber);

    /**
     * 中转区物料
     * @return
     */
    List<Material> queryTransitreaMateriel();

    /**
     * 库存分页
     * @param preHangingLine
     * @return
     */
    List<PreHangingLine> queryPreHangingLineStockPage(PreHangingLine preHangingLine);

    /**
     * 库存总数
     * @param preHangingLine
     * @return
     */
    Long queryPreHangingLineStockTotal(PreHangingLine preHangingLine);
}
